package com.heima.client.article.fallback;

import com.heima.client.article.IArticleClient;
import com.heima.common.exception.CustomException;
import com.heima.model.common.comment.dtos.CommentManagePageDto;
import com.heima.model.common.dtos.ArticleDto;
import com.heima.model.common.dtos.CommentUpdateStatusDto;
import com.heima.model.common.dtos.PageResponseResult;
import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.common.enums.AppHttpCodeEnum;
import com.heima.model.common.pojos.article.ApArticleConfig;
import com.heima.model.common.pojos.article.AdArticleStatistics;
import com.heima.model.common.pojos.article.ApArticle;
import com.heima.model.common.pojos.article.ApAuthor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @author 陈辉
 * @data 2024 15:43
 */
@Slf4j
@Component
public class ArticleClientFallback implements IArticleClient {
    /**
     * 保存或修改article文章信息
     *
     * @param articleDto
     * @return
     */
    @Override
    public ResponseResult syncArticle(ArticleDto articleDto) {
        log.warn("article微服务调用失败，开启降级处理....");
        return ResponseResult.errorResult(AppHttpCodeEnum.SERVER_ERROR);
    }

    @Override
    public ResponseResult getOne(Integer userId) {
        return null;
    }

    @Override
    public ResponseResult update(ApAuthor author) {
        return null;
    }

    /**
     * 根据作者ID查询
     *
     * @param entryId
     * @return
     */
    @Override
    public ResponseResult getArticleInfo(Long entryId) {
        log.warn("article微服务调用失败，开启降级处理....");
        return ResponseResult.errorResult(AppHttpCodeEnum.SERVER_ERROR);
    }

    @Override
    public PageResponseResult newsPage(Date beginDate, Date endDate, Integer page, Integer size,Integer id) {
        return null;
    }

    /**
     * 根据文章id查询文章配置
     *
     * @param articleId
     * @return
     */
    @Override
    public ApArticleConfig getArticleConfig(Long articleId) {
        return null;
    }


    /**
     * 更改文章评论状态
     *
     * @param statusDto
     * @return
     */
    @Override
    public ResponseResult updateArticleCommentStatus(CommentUpdateStatusDto statusDto) {
        log.warn("article微服务调用失败，开启降级处理....");
        return ResponseResult.errorResult(AppHttpCodeEnum.SERVER_ERROR);
    }

    /**
     * 查询符合条件文章
     *
     * @param commentDto
     */
    @Override
    public PageResponseResult findList(CommentManagePageDto commentDto) {
        log.warn("article微服务调用失败，开启降级处理....");
        throw new CustomException(AppHttpCodeEnum.SERVER_ERROR);
    }

    @Override
    public ApArticle getArticleById(Long id) {
        return null;
    }

    @Override
    public void updateArticle(ApArticle article) {

    }
}
